
package com.avsa.contratodeagricultores.service;


import static com.avsa.contratodeagricultores.model.dao.PedidoDAO.*;
import static com.avsa.contratodeagricultores.model.Contrato.*;
import static com.avsa.contratodeagricultores.model.dao.ContratoDAO.*;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;

import org.apache.commons.lang.StringUtils;

import com.avsa.contratodeagricultores.model.Adenda;
import com.avsa.contratodeagricultores.model.Agricultor;
import com.avsa.contratodeagricultores.model.Contrato;
import com.avsa.contratodeagricultores.model.dao.AdendaContratoDAO;
import com.avsa.contratodeagricultores.model.dao.AgricultorDAO;
import com.avsa.contratodeagricultores.model.dao.ContratoDAO;
import com.avsa.contratodeagricultores.model.dao.jpa.JPAAdendaContratoDAO;
import com.avsa.contratodeagricultores.model.dao.jpa.JPAAgricultorDAO;
import com.avsa.contratodeagricultores.model.dao.jpa.JPAContratoDAO;
import com.avsa.util.Utilitario;


public class ContratoService implements ContratoService_I {
	
	private EntityManager em;
	private ContratoDAO contratoDAO;
	private AgricultorDAO agricultorDAO;
	private AdendaContratoDAO adendaDAO;
	
	public void registrarContratoXagricultor()
	{
		
	}
	public ContratoService(){
		em=Utilitario.getInstance().getEntityManager();
		contratoDAO=new JPAContratoDAO(em);
		agricultorDAO = new JPAAgricultorDAO(em);
		adendaDAO=new JPAAdendaContratoDAO(em);
	}
	
	public int GenerarNumContrato() {
		List<Contrato> contratos=contratoDAO.findAll();
		int maxCode=contratos.size()+1;
		return maxCode;
	}

	public void registrarContrato(Contrato o) {
		contratoDAO.insert(o);
			
	}

	
	public void registrarContratoXagricultor(Contrato o) {
		
		contratoDAO.insert(o);
		
		
	}

	public int generarNumAdenda() {
		List<Adenda> adendas=adendaDAO.findAll();
		int maxCode=adendas.size()+1;
		return maxCode;
		
	}


	public void registrarAdenda(Adenda a) {
		adendaDAO.insert(a);
	}
	
	public List<Agricultor> listarAgricultores() throws Exception
	{
		return agricultorDAO.findAll();
	}
	
	public Agricultor buscarAgricultor(Agricultor o) throws Exception {
		return agricultorDAO.find(o);
	}
	
	public Agricultor buscarAgricultorXId(Agricultor o){
		return agricultorDAO.findById(o.getId_agricultor());
	}
	
	public Contrato buscarContratoXId(Contrato c) throws Exception{
		return contratoDAO.findById(c.getId_contrato());
		
	}
	


	
}